package repositorios;

import java.util.ArrayList;
import java.util.List;


import modelos.Usuario;
import interfaces.IRepositorioUsuario;


public class RepositorioUsuarioArrayList implements IRepositorioUsuario {

	private List<Usuario> dao;
	
	public RepositorioUsuarioArrayList(){
		dao = new ArrayList<Usuario>();
		
	}
	
	public void adicionarUsuario(Usuario u) {
	    dao.add(u);
	}
	public void removerUsuario(Usuario u) {
		dao.remove(u);
		
	}

	public List<Usuario> listarUsuario() {
	
		return dao;
	}

	public void editarUsuario(Usuario editar) {
		int index = busca(editar);
		if(index != -1){
			dao.remove(index);
			dao.add(index, editar);
		}
	}
		
	
	
	public Usuario buscarUsuarioPorId(Long id) {
		Usuario retorno = null;
		for(Usuario u : dao){
			if(u.getId()== id){
				retorno = u;
			}
		}
		
		return retorno;
	}

	public Usuario logar(String email, String senha) {
		Usuario retorno = null;
		for(Usuario u : dao){
			if(u.getEmail().equals(email) && u.getSenha().equals(senha)){
				retorno = u;
			}
		}
		return retorno;
	}

	
	public List<Usuario> buscarLike(String campo, String valor) {
		List<Usuario> retorno = new ArrayList<Usuario>();
		for(Usuario u : dao){
			if(campo.equals("Nome")){
				if(u.getNome().equals(valor)){
					retorno.add(u);
				}
		    }
			else if(campo.equals("CPF")){
				if(u.getCpf().equals(valor)){
					retorno.add(u);
				}
			}
		}
			
		return retorno;	
}

private int busca(Usuario editar){
	int index = -1;
	for(int i = 0; i < dao.size(); i++){
		if(dao.get(i).equals(editar)){
			index = i;
		}
	}
	return index;
}
}